1
Aula 7: Aprendizado por Transferência – Aproveitando o Conhecimento
EvoClass-AI002Aula 7
00:00

Bem-vindo à Aula 7, onde apresentamos Aprendizado por Transferência. Essa técnica envolve reutilizar um modelo de aprendizado profundo já treinado em um conjunto de dados amplo e geral (como o ImageNet) e adaptá-lo para resolver uma nova tarefa específica (como o nosso desafio FoodVision). É essencial para alcançar resultados de ponta de forma eficiente, especialmente quando os conjuntos de dados rotulados são limitados.

1. O Poder dos Pesos Pré-treinados

Redes neurais profundas aprendem características de forma hierárquica. Camadas mais baixas aprendem conceitos fundamentais (arestas, cantos, texturas), enquanto camadas mais profundas combinam essas características em conceitos complexos (olhos, rodas, objetos específicos). A principal observação é que as características fundamentais aprendidas inicialmente são universalmente aplicáveis em quase todos os domínios visuais.

Componentes do Aprendizado por Transferência

  • Tarefa de Origem: Treinamento em 14 milhões de imagens e 1000 categorias (por exemplo, ImageNet).
  • Tarefa-Alvo: Adaptando os pesos para classificar um conjunto de dados muito menor (por exemplo, nossas classes específicas do FoodVision).
  • Componente Aproveitado: A grande maioria dos parâmetros da rede — as camadas de extração de características — é reutilizada diretamente.
Ganho de Eficiência
O aprendizado por transferência reduz drasticamente duas barreiras principais de recursos: Custo Computacional (você evita treinar todo o modelo por dias) e Requisito de Dados (alta precisão pode ser alcançada com centenas, em vez de milhares, de exemplos de treinamento).
train.py
TERMINALbash — pytorch-env
> Pronto. Clique em "Executar" para iniciar.
>
INSPETOR DE TENSORES Ao Vivo

Execute o código para inspecionar tensores ativos
Questão 1
Qual é a principal vantagem de usar um modelo pré-treinado no ImageNet para uma nova tarefa visual?
Ele exige menos dados rotulados do que treinar do zero.
Ele elimina completamente a necessidade de qualquer dado de treinamento.
Ele garante 100% de precisão imediatamente.
Questão 2
Em um fluxo de trabalho de Aprendizado por Transferência, qual parte da rede neural é normalmente congelada?
A última camada de saída (cabeça classificadora).
A base convolucional (camadas de extração de características).
Toda a rede é normalmente não congelada.
Questão 3
Ao substituir a cabeça classificadora no PyTorch, qual parâmetro você deve determinar primeiro a partir da base congelada?
O tamanho do lote dos dados-alvo.
O tamanho do recurso de entrada (as dimensões de saída da última camada convolucional).
O número total de parâmetros do modelo.
Desafio: Adaptando a Cabeça Classificadora
Projetando uma nova classificadora para o FoodVision.
Você carrega um modelo ResNet pré-treinado no ImageNet. Sua última camada de características produz um vetor de tamanho 512. Seu projeto 'FoodVision' tem 7 classes distintas de alimentos.
Passo 1
Qual é o tamanho necessário de recurso de entrada para a nova camada linear treinável?
Solução:
O tamanho do recurso de entrada deve corresponder à saída da camada base congelada.
Tamanho: 512.
Passo 2
Qual é o trecho de código PyTorch para criar esta nova camada classificadora (supondo que a saída seja nomeada `new_layer`)?
Solução:
O tamanho de saída de 512 é a entrada, e a contagem de classes 7 é a saída.
Código: new_layer = torch.nn.Linear(512, 7)
Passo 3
Qual é o tamanho necessário de recurso de saída para a nova camada linear?
Solução:
O tamanho de recurso de saída deve corresponder ao número de classes-alvo.
Tamanho: 7.